import {roleDelete} from "@/api/role/roles"
import {useCreateModal} from "@/hooks"
import EditModal from './edit-modal.vue'
import AuthModal from './auth-modal.vue'
import {permissionList} from '@/api/role/permission'

export const columns = [ // 进程策略
    {
        title: '名称',
        dataIndex: 'name',
    },
    {
        title: '描述',
        dataIndex: 'desc',
    },
    {
        title: '操作',
        dataIndex: 'action',
        width: 200,
        slots: {
            customRender: 'action'
        },
        actions: [
            {
                type: 'popconfirm', // 控制类型，默认为a,可选： select | button | text
                key: 'fileid', // 删除的依据，如果需要根据多个字段删除，则字段之间以英文逗号分隔开，例如： id, name
                text: '删除',
                permission: 'role:delete',
                props: {
                  type: 'danger'
                },
                func: async ({record}, callback) => {
                    await roleDelete({ids: [record.id]})
                    callback()
                },
            },
            {
                type: 'button', // 控制类型，默认为a,可选： select | button | text
                key: 'fileid', // 删除的依据，如果需要根据多个字段删除，则字段之间以英文逗号分隔开，例如： id, name
                text: '编辑',
                permission: 'role:update',
                props: {
                    type: 'warning'
                },
                func: ({record}, callback) => {
                    const filterKeys = ['id', 'name', 'desc']
                    const params = {}
                    filterKeys.map(key => params[key] = record[key])
                    return useCreateModal(EditModal, {
                        fields: params,
                        callback
                    })
                },
            },
            {
                type: 'button', // 控制类型，默认为a,可选： select | button | text
                key: 'fileid', // 删除的依据，如果需要根据多个字段删除，则字段之间以英文逗号分隔开，例如： id, name
                text: '授权',
                permission: 'role:auth',
                props: {
                  type: 'primary'
                },
                func: async ({record}, callback) => {
                    const {data} = await permissionList({limit: 200})

                    return useCreateModal(AuthModal, {
                        fields: record,
                        permissions: data || [],
                        callback
                    })
                },
            },
            // {
            //     type: 'button', // 控制类型，默认为a,可选： select | button | text
            //     key: 'fileid', // 删除的依据，如果需要根据多个字段删除，则字段之间以英文逗号分隔开，例如： id, name
            //     text: '授权',
            //     props: {
            //         type: 'primary'
            //     },
            //     func: ({record}, callback) => {
            //         return useCreateModal(AuthModalCopy, {
            //             fields: record,
            //             callback
            //         })
            //     },
            // }
        ]
    },
]
